import os
import pandas as pd
from datetime import datetime

# 项目根目录
project_root = os.path.dirname(os.path.abspath(__file__))

# 获取当前日期，格式为 "MM月DD日"
today_str = datetime.now().strftime("%m月%d日")

# 创建带日期的备份目录路径
backup_dir = os.path.join(project_root, today_str)
os.makedirs(backup_dir, exist_ok=True)  # 自动创建目录（如果不存在）

# 原始文件路径列表
paths = [
    os.path.join(project_root, '[工艺4]--[球面透镜类]--[空间滤波器透镜L1(Z)]', '工艺-单个数据5-标注.xlsx'),
    os.path.join(project_root, '[工艺3]--[非球面透镜类]--[打靶透镜]', '工艺-单个数据5-标注.xlsx'),
    os.path.join(project_root, '[工艺21]--[平面反射类]--[靶场传输反射镜TM4-5基板]', '工艺-单个数据5-标注.xlsx')
]

for file_path in paths:
    if not os.path.exists(file_path):
        print(f"文件不存在，跳过: {file_path}")
        continue

    # 获取所在目录名（如：[工艺4]--[球面透镜类]--[空间滤波器透镜L1(Z)]）
    dir_name = os.path.basename(os.path.dirname(file_path))

    # 提取产品名：去掉首尾 []，按 '--' 分割，取最后一段
    if dir_name.startswith('[') and dir_name.endswith(']'):
        clean_name = dir_name[1:-1]
        parts = clean_name.split('--')
        product_name = parts[-1] if parts else clean_name
    else:
        product_name = dir_name  # 降级处理

    # 构建备份文件路径：备份/日期/产品名_bak.xlsx
    backup_filename = f"{product_name}_bak.xlsx"
    backup_path = os.path.join(backup_dir, backup_filename)

    # 读取所有工作表
    sheets_dict = pd.read_excel(file_path, sheet_name=None)

    # 写入备份文件
    with pd.ExcelWriter(backup_path, engine='openpyxl') as writer:
        for sheet_name, df in sheets_dict.items():
            df.to_excel(writer, sheet_name=sheet_name, index=False)

    print(f"已备份: {file_path} -> {backup_path}")